<%-- 
    Document   : shoes-update-processing
    Created on : Aug 27, 2011, 4:05:21 PM
    Author     : Administrator
--%>

<%@page import="pojo.GiayHinhPOJO"%>
<%@page import="dao.GiayHinhDAO"%>
<%@page import="util.DeleteFile"%>
<%@page import="util.ImageTest"%>
<%@page import="dao.GiayDAO"%>
<%@page import="pojo.GiayPOJO"%>
<%@ page import ="com.oreilly.servlet.multipart.MultipartParser"%>
<%@ page import ="com.oreilly.servlet.multipart.ParamPart"%>
<%@ page import ="com.oreilly.servlet.multipart.Part"%>

<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%

    GiayPOJO giay = new GiayPOJO();

    int n = 2; //Số hình upload
    String[] hinh = new String[n]; //Mảng tên hình upload.
    int i = 0;

    //Upload file.
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if (!isMultipart) {
    } else {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List items = null;
        try {
            items = upload.parseRequest(request);
        } catch (FileUploadException e) {
            e.printStackTrace();
        }
        Iterator itr = items.iterator();

        while (itr.hasNext()) {
            FileItem item = (FileItem) itr.next();
            if (item.isFormField()) {//Nếu là field form thì lấy dữ liệu.
                String name = item.getFieldName();
                String value = item.getString("UTF-8");
                if (name.equals("tfMaGiay")) {
                    giay.setMaGiay(Integer.parseInt(value));
                } else if (name.equals("tfTenGiay")) {
                    giay.setTenGiay(value);
                } else if (name.equals("slMauSac")) {
                    giay.setMaMauSac(Integer.parseInt(value));
                } else if (name.equals("slLoaiGiay")) {
                    giay.setMaLoaiGiay(Integer.parseInt(value));
                } else if (name.equals("slGioiTinh")) {
                    giay.setGioiTinh(Integer.parseInt(value));
                } else if (name.equals("tfSoLuong")) {
                    giay.setSoLuong(Integer.parseInt(value));
                } else if (name.equals("slTinhTrang")) {
                    giay.setMaTinhTrang(Integer.parseInt(value));
                } else if (name.equals("tfGiaBan")) {
                    giay.setGiaBan(Float.parseFloat(value));
                }

            } else {
                try {

                    String itemName = item.getName();
                    hinh[i] = itemName; //Lấy tên hình thứ i cho vào mảng
                    i++;

                    File savedFile = new File(config.getServletContext().getRealPath("/") + "client/hinhgiay/" + itemName);
                    //File savedFile = new File("C:\\" + itemName);
                    item.write(savedFile);
                    //out.println("<tr><td><b>Your file has been saved at the loaction:</b></td></tr>"
                    //+ "<tr><td><b>"+config.getServletContext().getRealPath("/")+"uploadedFiles"+"\\"+itemName+"</td></tr>");

                    //Thêm giày.



                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

    //Set tên hình
    String hinhNgang = "";
    String hinhDoc = "";

    String hinhNhoNgang = "";
    String hinhTrungBinhNgang = "";
    String hinhLonNgang = "";
    String hinhHienThiNgang = "";

    String hinhNhoDoc = "";
    String hinhTrungBinhDoc = "";
    String hinhLonDoc = "";
    String hinhHienThiDoc = "";

    if (hinh.length == 2) {
        hinhNgang = hinh[0];
        hinhDoc = hinh[1];

        //THAY ĐỔI KÍCH THƯỚC HÌNH.
        String sourcePath;
        String desPath;
        String path = config.getServletContext().getRealPath("/") + "client/hinhgiay/";

        //HÌNH NGANG.
        sourcePath = path + hinhNgang;

        //Hình lớn ngang.     
        ImageTest.setIMG_WIDTH(800);
        ImageTest.setIMG_HEIGHT(600);
        desPath = sourcePath + "_800x800.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //Hình trung bình ngang.
        ImageTest.setIMG_WIDTH(300);
        ImageTest.setIMG_HEIGHT(300);
        desPath = sourcePath + "_300x300.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //Hình trung nhỏ ngang.
        ImageTest.setIMG_WIDTH(42);
        ImageTest.setIMG_HEIGHT(42);
        desPath = sourcePath + "_42x42.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //Hình hiển thị.
        ImageTest.setIMG_WIDTH(249);
        ImageTest.setIMG_HEIGHT(249);
        desPath = sourcePath + "_249x249.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //XÓA HÌNH NGANG GỐC.
        DeleteFile.setFileName(sourcePath);
        DeleteFile.delete();

        //HÌNH DỌC
        sourcePath = path + hinhDoc;

        //Hình lớn dọc.      
        ImageTest.setIMG_WIDTH(800);
        ImageTest.setIMG_HEIGHT(600);
        desPath = sourcePath + "_800x800.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //Hình trung bình dọc.
        ImageTest.setIMG_WIDTH(300);
        ImageTest.setIMG_HEIGHT(300);
        desPath = sourcePath + "_300x300.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //Hình nhỏ dọc.
        ImageTest.setIMG_WIDTH(42);
        ImageTest.setIMG_HEIGHT(42);
        desPath = sourcePath + "_42x42.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //Hình hiển thị.
        ImageTest.setIMG_WIDTH(249);
        ImageTest.setIMG_HEIGHT(249);
        desPath = sourcePath + "_249x249.jpg";
        ImageTest.resizeImage(sourcePath, desPath);

        //XÓA HÌNH DỌC GỐC.
        DeleteFile.setFileName(sourcePath);
        DeleteFile.delete();

        //Cập nhật vào csdl.
        //Set hình hiển thị.
        hinhHienThiNgang = "hinhgiay/" + hinhNgang + "_249x249.jpg";
        giay.setHinhAnh(hinhHienThiNgang);

        //Cập nhật vào csdl.
        boolean kq = GiayDAO.capNhatThongTinGiay(giay);

        //Xóa giày hình.
        GiayHinhDAO.xoaGiayHinh(giay.getMaGiay());

        //Nếu cập nhật thành công Chuyển về trang quản lý giày.
        //Nếu cập nhật thành công.
        if (kq == true) {
            out.println("Cập nhật thành công !!!");

            //Nếu thêm giày thành công thì thêm vào bảng giày hình.
            //Thêm hình thứ 1.
            hinhLonNgang = "hinhgiay/" + hinhNgang + "_800x800.jpg";
            hinhTrungBinhNgang = "hinhgiay/" + hinhNgang + "_300x300.jpg";
            hinhNhoNgang = "hinhgiay/" + hinhNgang + "_42x42.jpg";

            GiayHinhPOJO gh = new GiayHinhPOJO();
            gh.setMaGiay(giay.getMaGiay());
            gh.setHinhNho(hinhNhoNgang);
            gh.setHinhTrungBinh(hinhTrungBinhNgang);
            gh.setHinhLon(hinhLonNgang);

            //Thêm vào csdl hình thứ 1.
            GiayHinhDAO.themGiayHinh(gh);

            //Thêm hình thứ 2.
            hinhLonDoc = "hinhgiay/" + hinhDoc + "_800x800.jpg";
            hinhTrungBinhDoc = "hinhgiay/" + hinhDoc + "_300x300.jpg";
            hinhNhoDoc = "hinhgiay/" + hinhDoc + "_42x42.jpg";

            gh = new GiayHinhPOJO();
            gh.setMaGiay(giay.getMaGiay());
            gh.setHinhNho(hinhNhoDoc);
            gh.setHinhTrungBinh(hinhTrungBinhDoc);
            gh.setHinhLon(hinhLonDoc);

            //Thêm vào csdl hình thứ 2.
            GiayHinhDAO.themGiayHinh(gh);

            out.println("Cập nhật thành công !!!");
            session.setAttribute("CapNhat", 1);
            String url = request.getContextPath() + "/admin/jsp/shoes-managing.jsp";
            response.sendRedirect(url);
        } else {
            out.println("Không cập nhật được !!!");
        }
    }
%>
